#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time    : 2025/4/18 14:22
@Author  : HZP
@File    : 4.复用提示模板.py
"""
from langchain.prompts import PromptTemplate
from langchain_core.prompts import PipelinePromptTemplate

master_prompt = PromptTemplate.from_template("""{instruction}

{example}

{start}""")

# 描述模版
description = PromptTemplate.from_template(
    "你正在模拟{job}的岗位人员回答,该岗位内容{job_description}")
# 举例
example = PromptTemplate.from_template("""下面是一个交互例子
Q:{question}
A:{answer}""")
# 开始模版
start = PromptTemplate.from_template("""你是该岗位人员请回答用户问题：
Q:{question_now}
A:""")

prompt_toolkit = [
    ("instruction", description),
    ("example", example),
    ("start", start),
]

final_template = PipelinePromptTemplate(
    final_prompt=master_prompt,
    pipeline_prompts=prompt_toolkit
)

fianl_prompt_message = final_template.invoke({
    "job": "小米总裁雷军",
    "job_description": "重大事项决策",
    "question": "你最喜欢的汽车是什么",
    "answer": "小米su7",
    "question_now": "你最喜欢的手机是什么?"
})
print(fianl_prompt_message.to_string())
